Altai Node — macOS
==================

1. Drag "Altai Node.app" to your Applications folder.
2. Double-click it.

Your browser opens on http://127.0.0.1:18090. That page is the whole interface: what
this machine is, what it will contribute (every value adjustable), what it qualifies to
serve, and a box to use the network from.

Nothing appears in the Dock. The node is a background service whose interface is that
page — reopen it any time at http://127.0.0.1:18090.

That has one consequence worth knowing before it confuses you:


"The application can't be opened. -47"
--------------------------------------

It is already running. Because there is no Dock icon, no window and no menu bar item,
there is nothing to see, so launching it again is the natural thing to try — and macOS
refuses with a number that explains nothing.

    Open http://127.0.0.1:18090

If the page loads, the node is serving and there is nothing wrong. To stop it, press
Quit on that page: it finishes any work in flight and leaves the network cleanly, which
closing it from Activity Monitor does not.


"Apple could not verify this app is free of malware"
----------------------------------------------------

Expected. This build is not notarised, which needs a paid Apple Developer identity we
have not set up yet. Until then:

    Right-click "Altai Node.app" -> Open -> Open

Or, from a terminal:

    xattr -dr com.apple.quarantine "/Applications/Altai Node.app"

We would rather tell you this than have you discover it.


The serving engine is in the app
--------------------------------

This download carries the inference engine with it, in

    Altai Node.app/Contents/Resources/engine

so there is nothing to build and nothing to point the node at. That directory is most of
the download's size; the node itself is a few megabytes. We bundle it because no
published build of llama.cpp includes the RPC backend that splitting a model across
machines needs, so "install the engine yourself" meant "build it from source", which is
not a fifteen-minute install.

Keep the app whole. The engine is found relative to the executable inside it, so moving
"Altai Node.app" anywhere is fine, but copying the executable out of it on its own
leaves it with no engine. If that happens the page says so and tells you how to fix it.

To use an engine you built yourself instead, set ALTAI_ENGINE_BIN to the directory
holding it. What you set wins over what shipped — unless that directory turns out to hold
no engine, in which case the node falls back to the bundled one and says so rather than
refusing to serve.

This download needs macOS 13.3 or newer. Not our floor: one of the engine's maths
routines calls an Accelerate function that older macOS does not have.


What this never does
--------------------

- Exceed a limit you set
- Expose the inference engine to the network. It binds 127.0.0.1 and is reached only
  through an authenticated tunnel
- Transmit your signing key. It is generated on this machine and never leaves it
- Accept an inbound connection from the coordinator. This node dials out, which is also
  why it works behind a home router with nothing forwarded


Running it from a terminal instead
----------------------------------

    "/Applications/Altai Node.app/Contents/MacOS/altai-node" --help
